An advanced streaming format (ASF) file (also referred to as an active stream format file or advanced system format) contains one or more multimedia streams, as disclosed in U.S. Pat. No. 6,041,345. A multimedia stream contains the data for one particular part of the overall ASF file. For instance, a typical ASF file might contain two multimedia streams, one containing the audio data for the file, and the other containing the video data for the file. Playback of an ASF file (either over a network or via the local hard drive) is done by playing the data from one or more of the multimedia streams. It is valid behavior (and desired practice in many cases) to only play a subset of the multimedia streams in the overall ASF file. Each stream has its own maximum bit rate and maximum buffer window which together describe the amount of network resources required in order to send that multimedia stream from a server over the network such that it can be played in real-time by a client. Since each multimedia stream's network resource requirements are independent of those for other streams, the bit rate and buffer numbers for each stream numbers in an ASF file are in general summed to determine the requirements for sending the ASF file including all its streams, simultaneously, a particular subset of the multimedia streams available in an ASF file.
One problem posed by this method of calculating network resource requirements is that it can be an overestimate because the total requirements needed are not always additive across streams. Bitrate and the fullness of the buffer window can vary with time for a particular stream. An example of this variation might be a non-audio, non-video stream whose bandwidth utilization is bursty. Overestimating the network resource requirements of a subset of multimedia streams in an ASF file is suboptimal; it will cause the server to select a suboptimal subset of multimedia streams, or even refuse to stream any multimedia streams at all even though in fact the resources may be sufficient.
Some streaming media formats cannot carry streams other than audio or video streams. Thus, it appears that these formats handle non-audio, non-video data in files separate from the main file and presumably stream such extra data separately. Streaming media formats with this limitation make it difficult or impossible to coordinate the total bandwidth consumption of multiple multimedia streams, causing suboptimal or incorrect behavior in limited network resource conditions. In addition, it sometimes enhances the presentation to have file transfer streams, text/caption streams, or script command streams which do at times exhibit the bursty behavior mentioned above. The ASF addresses this by having file transfer streams, text/caption streams, script command streams, and all other multimedia streams stored as part of the ASF file along with traditional audio and video multimedia streams.
For these reasons, a system and method for designating bandwidth sharing among streams is desired to address one or more of these and other disadvantages.